#pragma once
#include <list>
#include "PDcom.h"
#define MAX_EXAMPLE_NUM 10

class ILesson;
class IBook;

class IWord
{
public:
	IWord(const PDULONGLONG,const PDWCHAR*,const PDWCHAR*);
	virtual ~IWord(void);
	IWord(const IWord& word);
	IWord& operator=(const IWord& word);

	void reset(void);

	PDULONGLONG getWordID(void) const;
	PDWCHAR* getChineseMeaning(void) const;
	PDWCHAR* getForeignMeaning(void) const;
	PDWCHAR* getPronounce(void) const;
	PDWCHAR** getExample(void) const; 
	PDUINT getAccurate(void) const;

	void setChineseMeaning(const PDWCHAR*);
	void setForeignMeaning(const PDWCHAR*);
	void setPronounce(const PDWCHAR*);
	PDBOOL setExample(const PDWCHAR*, const PDUSHORT);
	PDUINT setAccurate(PDUINT uiTestNum, PDUINT uiErrorNum);

private:
	PDULONGLONG _ullID;

protected:
	std::list<IBook*> _list_books;
	PDWCHAR* _pwc_meaning_chinese;
	PDWCHAR* _pwc_meaning_foreign;
	PDWCHAR* _pwc_pronounce;
	PDWCHAR _pwc_example[MAX_EXAMPLE_NUM][MAX_STRING_LENGTH];

	PDUINT _uiTestNum;
	PDUINT _uiErrorNum;


};

